package com.maimao.user.mapper.sys;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.maimao.model.user.sys.Resources;
import com.maimao.model.user.sys.vo.ResourcesEx;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;

/**
 * @author MaoLin Wang
 * @date 2020/11/30 9:38 下午
 */
public interface ResourcesMapper extends BaseMapper<Resources> {

    List<Resources>selectByRoleIdBatch(@Param("roleIds") List<Integer> roleIds);

    List<Resources> selectTreeByUserId(@Param("userId")Integer userId, @Param("parentId") Integer parentId);

    /**
     * 查询用户下的所有一级菜单
     * @param userId
     * @return
     */
    List<Resources> selectParentByUserId(@Param("userId") Integer userId);

    /**
     * 树形数据
     * @param parentId
     * @return
     */
    List<Resources> selectTree(@Param("parentId") Integer parentId);

    List<Resources> selectTreeAll(@Param("parentId") Integer parentId);


    List<String> selectByNameLike(@Param("name") String key);

    /**
     * 查询直接子资源
     * @param parentId 父级id
     * @return
     */
    List<ResourcesEx> selectByParentId(@Param("parentId") Integer parentId,@Param("name") String name,@Param("status") Integer status);


    Resources selectByIdValid(@Param("id")Integer id);


    /**
     * 插入资源和角色关系
     * @param roleId
     * @param resourceId
     * @return
     */
    int insertRoleResourceRecord(@Param("resourceId") Integer resourceId, @Param("roleId") Integer roleId);

    int updateStatusBatch(@Param("ids") List<Integer> ids, @Param("status") Integer status);

}
